home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / clue.lha / clue / doc / clue.tex / node192_mn.html < prev    next >
Text File  |  1989-07-12  |  4KB  |  80 lines

  1.  
  2. <H3><A ID="SECTION005411100000000000000"><tex2html_anchor_invisible_mark></A> <A ID="ch:shells"><tex2html_anchor_mark></A><BR>
  3. Shells
  4. </H3><#5244#>
  5.            
  6.       
  7.  
  8.  
  9. <P>
  10. A contact whose parent is a root is called a <#2713#><B>top-level</B><#2713#><A ID="2714"><tex2html_anchor_invisible_mark></A> contact.  A top-level contact is usually
  11. a composite at the top of a hierarchy
  12. of other contacts created by an application program.  A CLUE application program
  13. will
  14. normally create at least one top-level contact which encapsulates user
  15. interaction for the application.  More complex applications will often use multiple
  16. top-level contacts, each representing distinct user tasks.  Top-level contacts
  17. play a special role in a user interface, because only top-level windows are
  18. subject to a user's operations for window management (performed via a window
  19. manager client) and for session management (performed via a session manager
  20. client).  Window managers, session managers, and the conventions for
  21. intercommunication among these clients are described in [#icccm#<tex2html_cite_mark>#1##<tex2html_cite_mark>#].
  22. <A ID="2716"><tex2html_anchor_invisible_mark></A><A ID="2717"><tex2html_anchor_invisible_mark></A>
  23.  
  24. <P>
  25. In addition, a top-level contact is often used as a <#2718#><B>pop-up</B><#2718#><A ID="2719"><tex2html_anchor_invisible_mark></A>
  26. --- for example, a menu which ``pops up'' when a command button contact is
  27. ``pressed.'' A top-level pop-up ``belongs'' to another contact without being
  28. constrained by it in position, size, or stacking order.  A top-level contact
  29. therefore has both a parent, which is always a root, and an <#2720#><B>owner</B><#2720#><A ID="2721"><tex2html_anchor_invisible_mark></A><A ID="2722"><tex2html_anchor_invisible_mark></A>, from which it may inherit resources
  30. values and other properties.
  31.  
  32. <P>
  33. In order to simplify top-level contact programming, CLUE defines a composite
  34. subclass called <#2723#><B>shells</B><#2723#><A ID="2724"><tex2html_anchor_invisible_mark></A>.  A shell is a top-level contact which
  35. merely acts as an invisible ``container'' for exactly one child.  From an
  36. application programmer's point of view, the child of a shell is really the
  37. effective top-level contact.  Programmer changes to the size of the child are
  38. automatically applied to the shell, and user changes to the size of a shell are
  39. automatically applied to its child.  The slots of a shell instance contain
  40. values which form the window properties used to communicate with window managers
  41. and session managers.  See [#icccm#<tex2html_cite_mark>#1##<tex2html_cite_mark>#] for a complete discussion of the
  42. conventions for client window properties.<A ID="2726"><tex2html_anchor_invisible_mark></A><A ID="2727"><tex2html_anchor_invisible_mark></A>
  43.  
  44. <P>
  45. Application programmers rarely need to operate on shells, other than to access
  46. their property slots and change their state.  In return, shells encapsulate the
  47. responsibilities required of top-level windows and conveniently integrate
  48. top-level pop-up's into the resource name hierarchy.  All top-level contacts
  49. should be shells; although this is not strictly required, the behavior of
  50. non-shell top-level contacts is not guaranteed to be correct.
  51.  
  52. <P>
  53. <#4705#>
  54. <#4446#><FONT SIZE="+1"><#2728#><B>shell Class</B><#2728#></FONT><#4446#> 
  55. <A ID="2729"><tex2html_anchor_invisible_mark></A>
  56. <A ID="2730"><tex2html_anchor_invisible_mark></A>
  57. <DIV class="RIGHT">
  58. <tex2html_image_mark>#tex2html_wrap_inline10292#
  59. </DIV><#4705#>
  60.  
  61. <P>
  62. Different CLUE shell subclasses are used to implement four basic types
  63. of interaction with window managers and session managers:
  64.  
  65. <P>
  66.  
  67. <UL>
  68. <LI><#2738#><TT>override-shell</TT><#2738#>
  69. </LI>
  70. <LI><#2739#><TT>transient-shell</TT><#2739#>
  71. </LI>
  72. <LI><#2740#><TT>top-level-shell</TT><#2740#>
  73. </LI>
  74. <LI><#2741#><TT>top-level-session</TT><#2741#>
  75. </LI>
  76. </UL>
  77.  
  78. <P>
  79. <#5254#>by1<#5254#>
  80.  =0 <#5255#>=0 <#5259#>